home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 1 (Walnut Creek)
/
Aminet - June 1993 [Walnut Creek].iso
/
ab20
/
hardware
/
mousehck.txt
< prev
next >
Wrap
Text File
|
1991-03-04
|
13KB
|
301 lines
Converting A Microsoft Serial Mouse To Work On The Amiga
Introduction
From reading the occasional complaints on Comp.Sys.Amiga, it appears that
many people are interested in replacing their stock Amiga mouse with
another type of input device. Witness the Atari Trackball modifications
and also the Boing Optical Mouse.
This article will explain the basics of the Amiga mouse, and in
particular, how to modify the Microsoft Serial Mouse (the newer white dove
bar one) to work on the Amiga. The principles outlined in this article can
be applied to modifying other mice. Matter of fact, other mice may be
simpler to modify (i.e. the Microsoft Bus Mouse). The reason I chose the
Serial mouse was that it was laying around already.
Disclaimer
This modification requires opening up your Microsoft serial mouse and
removing a chip and adding two resistors, one of which is a surface mount
resistor. If you feel uncomfortable with this then either find someone
that isn't or don't try this modification yourself.
I make no claims that this modification will work for you. It worked for
me, your mileage may vary...
Amiga Mouse
The Amiga supplied mouse is rather simple as mice go. It provides the
basic XY quadrature signals and lets the Amiga figure it out from there.
This is actually a good thing, as it lets us use other devices by simply
removing any back end processing or signal massaging circuits to get back
to the raw XY signals.
Basically, the Amiga mouse has two rollers that touch the mouse ball in
the X and Y direction. As the ball rotates in the X (right <-> left)
direction, X roller shaft spins. If the ball rotates in the Y (up down)
direction, the Y roller shaft spins. Any combination of XY direction, and
the roller shafts spin a proportionate amount in the X and Y directions.
Each shaft is connected at the end to a slotted disk. Each disk has a
LED emitter/ detector pair that "reads" the slots as they spin by, creating
a logic pulse for each slot seen.
Notice that there are two detectors for the X disk and two for the Y
disk. Each pair are mounted physically 180 degrees apart on the slotted
disk. The odd number of slots appear to be cut into each disk, so that it
is impossible for the pair of logic pulses to occur exactly at the same
time. This is how the mouse can signal the direction that the mouse is
moving.
For example, lets look at just the X slotted disk/detector pair. Lets
call the two output signals Xa and Xb. If the mouse is moving to the
right, the signals would look like this;
____ _______ _______
Xa | | | | |
|_______| |________| |________
____ _______ _______
Xb | | | | |
|_______| |________| |________
The graphics are terrible, but you get the picture. If the mouse is
moving in the opposite direction, then Xb would go low first, followed by
Xa.
The same thing happens for the Ya and Yb pair. In fact, you can treat
the Y pair as up down equivalent to the X pair.
Each of the four detector signals (x pair, y pair) is conditioned by a
LM339 Quad Voltage Comparator IC. The LM339 basically shapes up the
signals before being sent to the Amiga. Each of the four comparators is
used, one for each of the detector signals.
An example of the comparator circuit looks like this;
o Vcc 100 K o Vcc
| |
| ____/\/\/\/\____ \
/ | | /
| | |\ | \ 3.3K
| detector | | \ | /
\_________________|____|+ \ | |
| | \____|_________|____ Pin x on DB9
\ o Vcc | /
2.2K / / ____|- /
\ 10K \ | | /
/ / | |/
| |_______|
--- |
- \
2.7K /
\
|
-----
---
-
The 10K, 2.7K resistor divider sets a trip voltage of around 1.0 volts
for the comparator. This is important since the detector puts out around
.5V for a low pulse. The resistor divider is also shared by all four
comparators in the LM339.
The two mouse buttons are simply switches to ground. When you press one
of the buttons, it grounds a DB9 pin. The corresponding pull-up resistors
must be inside the Amiga.
The mouse cord terminates inside the mouse in a connector marked CN-1.
Below is the pinouts for the mouse cord.
DB9 CN-1 Function
-------------------------------------
6 1 Left Button
9 6 Right Button
8 9 Signal Ground
7 8 Vcc (+5 Volts)
3 5 Ya
1 2 Yb
2 3 Xa
4 4 Xb
5 7 No Connect
Shield Drain Wire Ground
The DB9 pinout is per the convention for DB9 connectors. The CN-1 pinout
is per the numbers molded into the top of the connector.
Microsoft Serial Mouse
The Microsoft serial mouse starts out the same as the Amiga mouse, with
an almost identical roller shaft/slotted wheel/LM339 arrangement. The
similarities stop there. Since this is a device that is hooked to an IBMPC
serial port, the mouse must send signals that look a lot like serial data
for the UART inside the PC to understand it. Also, the mouse must derive
its power from a serial pin which the mouse driver sets to +12 volts.
These two differences is where the modifications come in. First lets look
at the Microsoft mouse's circuits then we'll get into the modification.
The Microsoft mouse uses a similar roller shaft/slotted wheel arrangement
as the Amiga mouse does. The one difference to note is that the Microsoft
mouse uses one LED emitter per X and Y axis and has a dual detector that is
all in one package. This is apparently a cost reduction measure but the
net effective output is the same as the Amiga mouse. The dual quadrature
signals for X and Y direction are identical to the Amiga mouse.
Each of the XY pairs goes to a LM339 comparator just like the Amiga
mouse. The resistor values are different and there is also a diode to
ground on each detector output (presumably for protection).
The four outputs of the LM339 as well as the two switch inputs are fed
into the microprocessor marked "Mitsumi MS02". This uP apparently reads
all the input events and sends a serial data stream to the UART in the PC.
There is a zener diode circuit to limit the +12v down to +5 volts for the
LM339 and uP. Unfortunately, the emitter LED's and the resistor divider
circuit are powered directly from the +12V.
Modifications for the Microsoft Serial Mouse
To perform this modification, you will need the following items;
Soldering Iron
Solder
Solder Wick (or a desoldering station)
1) 470 1/4 Watt resistor
1) 10K surface mount resistor (clever people may be able to use
a 1/4W or 1/8W regular resistor).
9 conductor w/shield cable. If your Amiga mouse is dead, this is
the best cord to use. The cable must be small enough to fit
thru the slot at top of the mouse
Phillips screwdriver
First disassemble the Microsoft mouse. Turn the mouse over, peel off the
serial number label. Under it you will find two recessed screws. Remove
the screws. Turn the mouse right side up. pull up gently on the bottom
end (away from the buttons) of the top of the mouse case. lightly pull back
on the top to disengage the latch that is inside the mouse near the front.
It might help to use a small screwdriver to push gently on the tab just
above the mouse cord at the same time. The cover should come off.
Remove the mouse cord by disconnecting the cable at CN1. Remove the two
screws, one on each side of the ball assembly. The circuit board should
now come out of the lower housing.
Remove the IC nearest the CN1 connector. It should be marked "Mitsumi
MS02" Do this carefully, as we will use the holes to solder in the new
mouse cable.
Notice the thick trace running thru the center of the IC just removed.
It has 6 surface mount resistors connecting it to various pads of the IC.
It also connects directly to Pin 8 of the IC. This is VCC (+5V). Now find
the surface mount resistor directly to the left of the CN1 connector pads.
It should be marked "182". Now take the 470 ohm resistor and fashion the
leads to fit between the VCC trace and the top side of the 182 resistor
(side nearest the IC just removed). Cut the leads to length as necessary.
Form the leads so that they don't short on anything else. I formed mine
like this;
o o o o o o o o
| | where | is a surf. mnt. resistor
________________ <---
| | | |
470 \ o o o o o o o o <-- IC removed
Resistor/
\ o o o
/
|_______
| o o o o o <-- CN1
"182"
surface mount resistor
This just fixed the first problem. The current limiting resistor for the
LED emitters was tied to +12 volts thru a 1.8K ("182") resistor. Since we
don't have 12 volts, the 470 ohm resistor to +5 volts replaces it.
Next, find the empty surface mount resistor pads just below pins 3 and 4
of the LM339 IC. Solder the 10K surface mount resistor to these pads, like
this;
|
o o o o o o o
| | _ _ where | is a surf. mnt. resistor
Pads <---
|
o o o o o o o <-- LM339 IC
This fixes the second problem. The resistor divider was tied to +12
volts as well. Adding this 10K resistor resets the divider to 1.0 volts
when dividing from +5 volts.
Next, solder your new mouse cord to the pads of the removed IC according
to the following chart;
DB9 IC pad Function
--------------------------------------
1 12 Yb
2 10 Xa
3 11 Ya
4 9 Xb
5 No Connect Not used
6 13 Left button
7 16 Vcc (+5V)
8 8 Signal Ground
9 14 Right Button
Shield wire to CN1, pin 5
The shield wire is required, since the LED emitters are grounded to it.
Recheck your work. Screw the circuit board back into the lower housing.
Route the mouse cord around the left of the ball assembly and out thru the
cutout. Snap on the top cover. Screw the top back on.
Your new mouse should be operational.
If it doesn't work, check the following;
Pointer moves left when mouse is moved right. The Xa and Xb lines are
swapped. Reverse them.
Pointer moves up when mouse is moved down. The Ya and Yb lines are
swapped. Reverse them.
One or both buttons don't work. Recheck your connections. Is the cable
interfering with the switches near the top of the mouse? Can you hear the
switches clicking? Is the top cover snapped on correctly?
Neither direction moves the pointer. Make sure the shield wire is
connected to CN1, pin 5. With the Mouse connected and the Amiga on, check
for +5 volts on the LM339; Pin 3 is Vcc, pin 12 is ground. Check for
around 1.0 volts on pins 4,6,8,10. If its not close, recheck your 10K mod.
Check to see if there is a voltage drop across the LED's. If not, check
your 470 ohm mod.
Conclusions
With the information here and some circuit tracing on your part, you
should be able to modify other mice in a similar manner.
Enjoy your new mouse!
Jeff Easton
easton@andrews.edu